// © 2009 Microsoft Corporation.  All rights reserved.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Microsoft.InformationSecurity.ISRM.TaskManagment.Classes
{
    /// <summary>
    /// Represents template that can be used to create a task. Contains same details as task except owner of the task.
    /// </summary>
    public class TaskTemplate:BusinessObject
    {

        /// <summary>
        /// NotificationCotent of the taskID
        /// </summary>
        public string TaskName
        {
            get;
            set;
        }

        /// <summary>
        /// Category of the taskID
        /// </summary>
        public Category Category
        {
            get;
            set;
        }

        /// <summary>
        /// Group of the taskID
        /// </summary>
        public Group Group
        {
            get;
            set;
        }

        /// <summary>
        /// Notes of the taskID
        /// </summary>
        public string Notes
        {
            get;
            set;
        }

        /// <summary>
        /// Notification schedule of the taskID
        /// </summary>
        public NotificationSchedule NotificationSchedule
        {
            get;
            set;
        }

        /// <summary>
        /// Sub taskID templates
        /// </summary>
        
        public ICollection<TaskTemplate> SubTasks
        {
            get;
            set;
        }

        
        /// <summary>
        /// Number of days to which due date will be calculated
        /// </summary>
        public int DueDateDuration
        {
            get;
            set;
        }

        /// <summary>
        /// User who last updated the template
        /// </summary>
        public User LastUpdatedBy
        {
            get;
            set;
        }

        /// <summary>
        /// Date and time when the template was last updated
        /// </summary>
        public DateTime LastUpdatedDateTime
        {
            get;
            set;
        }
    }
}
